package com.yjd.comm.easycard.model;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotEmpty;

import com.yjd.comm.base.model.Model;
import com.yjd.comm.easycard.enums.ECUploadCompleteEnum;
import com.yjd.comm.easycard.enums.ECVerifyStateEnum;
import com.yjd.comm.util.DateUtil;

/**
 * <b>description</b>：易借卡基本信息表模型<br>
 * <b>time</b>：2015-04-11 00:40:56 <br>
 * <b>author</b>： SongJian
 */
public class EasycardBasedataModel extends Model {

	/**
	 * @Fields serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	private Long id;
	// 真实姓名
	@NotEmpty(message = "真实姓名不能为空")
	private String base_real_name;
	// 身份证号：
	@NotEmpty(message = "身份证好不能为空")
	private String base_identity_id;
	// 年 龄：
	private Integer base_age;
	// 性别:
	private Integer base_sex;
	// 手机号码：
	@NotNull(message = "预留手机号不能为空")
	@Min(value=11111111111L,message="预留手机号长度不对")
	@Max(value=100000000000L,message="预留手机号长度不对")
	private Long base_phone;
	// 最高学历
	@Min(0)
	@NotNull(message = "选择学历")
	private Integer base_max_edu;
	// 住宅性质
	@NotNull(message = "住宅性质不能为空")
	@Min(0)
	private Integer base_home_type;
	
	@NotEmpty(message = "请选择户口")
	private String base_hukou;
	
	@Min(value=0,message="公司规模不对")
	private Integer job_company_scale;
	
	
	// 住宅地址
	@NotEmpty(message = "住宅地址不能为空")
	private String base_home_address;
	// 银行信用卡最高额度：
	@NotNull(message = "请填写授信银行 信用卡最高额度")
	@Min(value=0,message="额度有点低了")
	private Double base_max_credit_money;
	// 信用卡授信银行：
	@NotNull(message = "选择一个信用卡授信银行")
	@Min(0)
	private Integer base_bank;
	@Min(1)
	@NotNull(message = "婚姻状态不明")
	private Integer family_marry;
	// 直系亲属姓名
	@NotEmpty(message = "直系亲属姓名")
	private String family_z_name;
	// 直系关系
	@NotNull(message = "直接联系人关系没有选择")
	@Min(1)
	private Integer family_z_type;
	// 直系手机号
	@NotNull(message = "直接联系人手机号不能为空")
	@Min(value=11111111111L,message="直接联系人手机号号码长度不对")
	@Max(value=100000000000L,message="直接联系人手机号号码长度不对")
	private Long family_z_mobile;
	// 其他联系人姓名
	@NotEmpty(message = "其他联系人姓名不能为空")
	private String family_o_name;
	// 其他联系人关系
	@NotNull(message = "其他联系人关系不明")
	@Min(1)
	private Integer family_o_type;
	// 其他联系人手机号
	@NotNull(message = "其他联系人手机号不能为空")
	@Min(value=11111111111L,message="其他联系人手机号号码长度不对")
	@Max(value=100000000000L,message="其他联系人手机号号码长度不对")
	private Long family_o_mobile;
	@NotNull(message = "有房吗？")
	@Min(1)
	@Max(2)
	private Integer ext_isfang;
	@NotNull(message = "有房贷吗？")
	@Min(1)
	@Max(2)
	private Integer ext_isfangdai;
	@NotNull(message = "有车吗？")
	@Min(1)
	@Max(2)
	private Integer ext_ische;
	@NotNull(message = "有车贷吗？")
	@Min(1)
	@Max(2)
	private Integer ext_ischedai;
	@NotEmpty(message = "用户邮箱不能为空")
	private String ext_email;
	@NotEmpty(message = "单位名称不能为空")
	private String job_company_name;
	@NotNull(message = "请选择单位性质")
	@Min(1)
	private Integer job_company_type;
	@NotEmpty(message = "单位电话不能为空")
	private String job_company_tel;
	@NotEmpty(message = "单位地址不能为空")
	private String job_company_address;
	@NotEmpty(message = "职位不能为空")
	private String job_position;
	// 税后年收入
	@NotNull(message = "税后年收入是？")
	@Min(0)
	private Integer job_income;
	@NotNull(message="请选择工作年限")
	private Integer job_work_years;
	@NotNull(message="请选择健康产业商会职务")
	@Min(1)
	private Integer job_health_commerce_position;
	@NotNull(message="请选择所属区域商会")
	@Min(1)
	private Integer job_area_commerce;
	private String fetch_bank_account;
	private Long fetch_bank_no;
	private String fetch_bank_address;
	/**
	 * 关联的易借卡
	 */
	private Long easycard_id;
	
	/**
	 * 是否已经激活
	 */
	private Integer easycard_is_active;
	private Integer credit_level=0;
	private String credit_level_name;
	private Double credit_money=0.0d;
	private Integer isok=0;
	private Integer vstep=0;
	private Integer callback_isok=0;
	private Long updatetime=0L;
	private Long endtime=0L;
	// 添加时间
	private String updatetime_str;
	
	private String isok_str;
	// 审核步骤状态说明
	private String verify_step_event;
	// 最后审核通过时间
	private String endtime_str;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getBase_real_name() {
		return base_real_name;
	}
	public void setBase_real_name(String base_real_name) {
		this.base_real_name = base_real_name;
	}
	public String getBase_identity_id() {
		return base_identity_id;
	}
	public void setBase_identity_id(String base_identity_id) {
		this.base_identity_id = base_identity_id;
	}
	public Integer getBase_age() {
		return base_age;
	}
	public void setBase_age(Integer base_age) {
		this.base_age = base_age;
	}
	public Integer getBase_sex() {
		return base_sex;
	}
	public void setBase_sex(Integer base_sex) {
		this.base_sex = base_sex;
	}
	public Long getBase_phone() {
		return base_phone;
	}
	public void setBase_phone(Long base_phone) {
		this.base_phone = base_phone;
	}
	public Integer getBase_max_edu() {
		return base_max_edu;
	}
	public void setBase_max_edu(Integer base_max_edu) {
		this.base_max_edu = base_max_edu;
	}
	public Integer getBase_home_type() {
		return base_home_type;
	}
	public void setBase_home_type(Integer base_home_type) {
		this.base_home_type = base_home_type;
	}
	public String getBase_home_address() {
		return base_home_address;
	}
	public void setBase_home_address(String base_home_address) {
		this.base_home_address = base_home_address;
	}
	public Double getBase_max_credit_money() {
		return base_max_credit_money;
	}
	public void setBase_max_credit_money(Double base_max_credit_money) {
		this.base_max_credit_money = base_max_credit_money;
	}
	public Integer getBase_bank() {
		return base_bank;
	}
	public void setBase_bank(Integer base_bank) {
		this.base_bank = base_bank;
	}
	public Integer getFamily_marry() {
		return family_marry;
	}
	public void setFamily_marry(Integer family_marry) {
		this.family_marry = family_marry;
	}
	public String getFamily_z_name() {
		return family_z_name;
	}
	public void setFamily_z_name(String family_z_name) {
		this.family_z_name = family_z_name;
	}
	public Integer getFamily_z_type() {
		return family_z_type;
	}
	public void setFamily_z_type(Integer family_z_type) {
		this.family_z_type = family_z_type;
	}
	public Long getFamily_z_mobile() {
		return family_z_mobile;
	}
	public void setFamily_z_mobile(Long family_z_mobile) {
		this.family_z_mobile = family_z_mobile;
	}
	public String getFamily_o_name() {
		return family_o_name;
	}
	public void setFamily_o_name(String family_o_name) {
		this.family_o_name = family_o_name;
	}
	public Integer getFamily_o_type() {
		return family_o_type;
	}
	public void setFamily_o_type(Integer family_o_type) {
		this.family_o_type = family_o_type;
	}
	public Long getFamily_o_mobile() {
		return family_o_mobile;
	}
	public void setFamily_o_mobile(Long family_o_mobile) {
		this.family_o_mobile = family_o_mobile;
	}
	public Integer getExt_isfang() {
		return ext_isfang;
	}
	public void setExt_isfang(Integer ext_isfang) {
		this.ext_isfang = ext_isfang;
	}
	public Integer getExt_isfangdai() {
		return ext_isfangdai;
	}
	public void setExt_isfangdai(Integer ext_isfangdai) {
		this.ext_isfangdai = ext_isfangdai;
	}
	public Integer getExt_ische() {
		return ext_ische;
	}
	public void setExt_ische(Integer ext_ische) {
		this.ext_ische = ext_ische;
	}
	public Integer getExt_ischedai() {
		return ext_ischedai;
	}
	public void setExt_ischedai(Integer ext_ischedai) {
		this.ext_ischedai = ext_ischedai;
	}
	public String getExt_email() {
		return ext_email;
	}
	public void setExt_email(String ext_email) {
		this.ext_email = ext_email;
	}
	public String getJob_company_name() {
		return job_company_name;
	}
	public void setJob_company_name(String job_company_name) {
		this.job_company_name = job_company_name;
	}
	public Integer getJob_company_type() {
		return job_company_type;
	}
	public void setJob_company_type(Integer job_company_type) {
		this.job_company_type = job_company_type;
	}
	public String getJob_company_tel() {
		return job_company_tel;
	}
	public void setJob_company_tel(String job_company_tel) {
		this.job_company_tel = job_company_tel;
	}
	public String getJob_company_address() {
		return job_company_address;
	}
	public void setJob_company_address(String job_company_address) {
		this.job_company_address = job_company_address;
	}
	public String getJob_position() {
		return job_position;
	}
	public void setJob_position(String job_position) {
		this.job_position = job_position;
	}
	public Integer getJob_income() {
		return job_income;
	}
	public void setJob_income(Integer job_income) {
		this.job_income = job_income;
	}
	public Integer getJob_work_years() {
		return job_work_years;
	}
	public void setJob_work_years(Integer job_work_years) {
		this.job_work_years = job_work_years;
	}
	public Integer getJob_health_commerce_position() {
		return job_health_commerce_position;
	}
	public void setJob_health_commerce_position(Integer job_health_commerce_position) {
		this.job_health_commerce_position = job_health_commerce_position;
	}
	public Integer getJob_area_commerce() {
		return job_area_commerce;
	}
	public void setJob_area_commerce(Integer job_area_commerce) {
		this.job_area_commerce = job_area_commerce;
	}
	public String getFetch_bank_account() {
		return fetch_bank_account;
	}
	public void setFetch_bank_account(String fetch_bank_account) {
		this.fetch_bank_account = fetch_bank_account;
	}
	public Long getFetch_bank_no() {
		return fetch_bank_no;
	}
	public void setFetch_bank_no(Long fetch_bank_no) {
		this.fetch_bank_no = fetch_bank_no;
	}
	public String getFetch_bank_address() {
		return fetch_bank_address;
	}
	public void setFetch_bank_address(String fetch_bank_address) {
		this.fetch_bank_address = fetch_bank_address;
	}
	public Integer getCredit_level() {
		return credit_level;
	}
	public void setCredit_level(Integer credit_level) {
		this.credit_level = credit_level;
	}
	public Double getCredit_money() {
		return credit_money;
	}
	public void setCredit_money(Double credit_money) {
		this.credit_money = credit_money;
	}
	public Integer getIsok() {
		return isok;
	}
	public void setIsok(Integer isok) {
		this.isok = isok;
	}
	public Integer getVstep() {
		return vstep;
	}
	public void setVstep(Integer vstep) {
		this.vstep = vstep;
	}
	public Integer getCallback_isok() {
		return callback_isok;
	}
	public void setCallback_isok(Integer callback_isok) {
		this.callback_isok = callback_isok;
	}
	public Long getUpdatetime() {
		return updatetime;
	}
	public void setUpdatetime(Long updatetime) {
		this.updatetime = updatetime;
	}
	public Long getEndtime() {
		return endtime;
	}
	public void setEndtime(Long endtime) {
		this.endtime = endtime;
	}
	public String getUpdatetime_str() {
		return DateUtil.format(DateUtil.timestampToDate(getUpdatetime()),
				DateUtil.PATTERN_yyyy_MM_dd_HH_mm_ss);
	}
	public void setUpdatetime_str(String updatetime_str) {
		this.updatetime_str = updatetime_str;
	}
	public String getVerify_step_event() {
		return ECVerifyStateEnum.getDesc(getVstep());
	}
	public void setVerify_step_event(String verify_step_event) {
		this.verify_step_event = verify_step_event;
	}
	public String getEndtime_str() {
		return DateUtil.format(DateUtil.timestampToDate(getEndtime()),
				DateUtil.PATTERN_yyyy_MM_dd_HH_mm_ss);
	}
	public void setEndtime_str(String endtime_str) {
		this.endtime_str = endtime_str;
	}
	public String getIsok_str() {
		return ECUploadCompleteEnum.get(getIsok()).getDescription();
	}
	public void setIsok_str(String isok_str) {
		this.isok_str = isok_str;
	}
	public String getBase_hukou() {
		return base_hukou;
	}
	public void setBase_hukou(String base_hukou) {
		this.base_hukou = base_hukou;
	}
	public Integer getJob_company_scale() {
		return job_company_scale;
	}
	public void setJob_company_scale(Integer job_company_scale) {
		this.job_company_scale = job_company_scale;
	}
	public Long getEasycard_id() {
		return easycard_id;
	}
	public void setEasycard_id(Long easycard_id) {
		this.easycard_id = easycard_id;
	}
	public Integer getEasycard_is_active() {
		return easycard_is_active;
	}
	public void setEasycard_is_active(Integer easycard_is_active) {
		this.easycard_is_active = easycard_is_active;
	}
	public String getCredit_level_name() {
		return credit_level_name;
	}
	public void setCredit_level_name(String credit_level_name) {
		this.credit_level_name = credit_level_name;
	}
	

}
